package com.iscas.tech.service;

import com.iscas.tech.entity.AtBasemodules;
import com.iscas.tech.param.AtBasemodulesPageParam;
import com.iscas.tech.vo.AtBasemodulesQueryVo;
import com.iscas.tech.vo.MdAndMvQueryVo;
import io.geekidea.springbootplus.framework.common.service.BaseService;
import io.geekidea.springbootplus.framework.pagination.Paging;

import java.util.List;

/**
 * 项目基础信息模块表 服务类
 *
 * @author yangyi
 * @since 2020-10-26
 */
public interface AtBasemodulesService extends BaseService<AtBasemodules> {

    /**
     * 保存
     *
     * @param atBasemodules
     * @return
     * @throws Exception
     */
    boolean saveAtBasemodules(AtBasemodules atBasemodules) throws Exception;

    /**
     * 修改
     *
     * @param atBasemodules
     * @return
     * @throws Exception
     */
    boolean updateAtBasemodules(AtBasemodules atBasemodules) throws Exception;

    /**
     * 删除
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteAtBasemodules(Long id) throws Exception;


    /**
     * 获取分页对象
     *
     * @param atBasemodulesPageParam
     * @return
     * @throws Exception
     */
    Paging<AtBasemodulesQueryVo> getAtBasemodulesPageList(AtBasemodulesPageParam atBasemodulesPageParam) throws Exception;

    /**
     * @param mdType {@link com.iscas.tech.bo.MdType} 所属功能
     * @return 获取全部基础模块信息
     */
    List<AtBasemodulesQueryVo> getAll(Integer mdType) throws Exception;

    /**
     * @param id 基础模块ID
     * @return 获取基础模块详情
     * @throws Exception 查询异常
     */
    AtBasemodulesQueryVo get(Long id) throws Exception;

    /**
     * 获取全部基础模块详细信息（包含模块值列表）
     *
     * @param mdType {@link com.iscas.tech.bo.MdType}
     * @return 详细信息列表
     * @throws Exception 查询异常
     */
    List<MdAndMvQueryVo> getDetailAll(Integer mdType) throws Exception;
}
